package com.zyg.controller;

import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zyg.pojo.DeptEx;
import com.zyg.service.DeptExService;
import com.zyg.util.LayData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;


    @Controller
    @RequestMapping("/deptex")
    public class DeptExController {


        @Autowired
        private DeptExService deptExService;

        @RequestMapping("/tolist")
        public  String tolist(){
            return "deptex/list";
        }

        @RequestMapping("/list")
        @ResponseBody
        public  String list(DeptEx dept, @RequestParam(value = "page", defaultValue = "1") Integer page, @RequestParam(value = "limit", defaultValue = "10") Integer limit){
            // 查询数据
            LayData layData = new LayData();
            QueryWrapper<DeptEx> qw = new QueryWrapper<>();
            qw.like(dept.getDeptName() != null && !"".equals(dept.getDeptName()),"dept_name",dept.getDeptName());
            long totalCount = deptExService.count(qw);
            layData.setCount((int) totalCount);
            Page<DeptEx> page1 = new Page<>(page, limit);
            layData.setData(deptExService.list(page1, qw));
            layData.setCode(0);
            layData.setMsg("查询成功");
            // 数据返回
            String data = JSON.toJSONString(layData);
            return data;
        }

        @RequestMapping("/toadd")
        public String toAdd(){
            return "deptex/add";
        }

        @RequestMapping("/addSave")
        @ResponseBody
        public String addSave(DeptEx dept){
            boolean flag = deptExService.save(dept);
            if (flag) {
                return JSON.toJSONString(new LayData(0, "添加成功"));
            } else {
                return JSON.toJSONString(new LayData(500, "添加失败"));
            }
        }

        @RequestMapping("/toupdate/{id}")
        public String toUpdate(@PathVariable("id") int id, Model model){
            DeptEx dept = deptExService.getById(id);
            model.addAttribute("dept", dept);
            return "deptex/update";
        }

        @RequestMapping("/toinfo/{id}")
        public String toInfo(@PathVariable("id") int id, Model model){
            DeptEx dept = deptExService.getById(id);
            model.addAttribute("dept", dept);
            return "deptex/info";
        }

        @RequestMapping("/updateSave")
        @ResponseBody
        public String updateSave(DeptEx dept){
            boolean flag = deptExService.updateById(dept);
            if (flag) {
                return JSON.toJSONString(new LayData(0, "更新成功"));
            } else {
                return JSON.toJSONString(new LayData(500, "更新失败"));
            }
        }

        @RequestMapping("/delete/{id}")
        @ResponseBody
        public String deleteDept(@PathVariable("id") int id){
            boolean flag = deptExService.removeById(id);
            if (flag) {
                return JSON.toJSONString(new LayData(0, "删除成功"));
            } else {
                return JSON.toJSONString(new LayData(500, "删除失败"));
            }
        }
    }

